package com.lost.octopus.es.processor.feign;

import com.lost.octopus.es.helper.entity.query.QueryResult;
import com.lost.octopus.es.processor.resolver.EsShareListRequest;

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import javax.validation.Valid;

/**
 * 带分页的api
 * @param <F> 分页查询类型
 * @param <E> 实体类型
 * @param <I> 实体主键类型
 * @author zhangbh
 */
public interface PageApi<F, E, I> extends Api<E, I> {

    /**
     * 通用es分页查询
     * @param reqData 请求参数
     * @return 地址列表
     */
    @PostMapping(value = "searchList.do", name = "地址查询")
    <Q extends F> QueryResult<E> searchList(@RequestBody @Valid EsShareListRequest<Q> reqData);
}
